package org.springblade.modules.admin.service;

import org.springblade.core.mp.base.BaseService;
import org.springblade.modules.admin.dto.parts.BatchRelationCategoryDTO;
import org.springblade.modules.admin.entity.MaintainParts;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.modules.admin.vo.MaintainPartsTreeVO;
import org.springblade.modules.admin.vo.MaintainPartsVO;
import org.springblade.modules.admin.vo.MaintainPartsWithAttributesTreeVO;

import java.util.List;

public interface MaintainPartsService extends BaseService<MaintainParts> {

	/**
	 * 列表
	 */
	List<MaintainPartsVO> partsList(MaintainParts maintainParts);

	/**
	 * 树形列表
	 */
	List<MaintainPartsTreeVO> partsTree(MaintainParts maintainParts);

	/**
	 * 新增或编辑
	 */
	boolean submit(MaintainParts maintainParts);

	/**
	 * 移除分类
	 */
	boolean removeParts(List<Long> ids);

	/**
	 * 批量关联商品类目
	 */
	boolean batchRelationCategory(BatchRelationCategoryDTO param);

	/**
	 * 获取电梯结构模板关联配件树
	 */
	List<MaintainPartsTreeVO> getElevatorStructureTree(Long elevatorId);

	/**
	 * 处理历史数据脚本
	 */
	boolean initData();

	List<MaintainPartsWithAttributesTreeVO> partsTreeWithAttributes(MaintainParts maintainParts);

	/**
	 * 删除该配件及关联关系
	 * @param partsIdList 配件id列表
	 * @return 是否成功
	 */
	boolean removePartsByIds(List<Long> partsIdList);
}
